home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyc (Python 2.4)
-
- import unittest
- from test import test_support
- import posixpath
- import os
- from posixpath import realpath, abspath, join, dirname, basename
- ABSTFN = abspath(test_support.TESTFN)
-
- class PosixPathTest(unittest.TestCase):
-
- def assertIs(self, a, b):
- self.assert_(a is b)
-
-
- def test_normcase(self):
- p = 'FoO/./BaR'
- p = posixpath.normcase(p)
- self.assertEqual(p, posixpath.normcase(p))
- self.assertRaises(TypeError, posixpath.normcase)
-
-
- def test_join(self):
- self.assertEqual(posixpath.join('/foo', 'bar', '/bar', 'baz'), '/bar/baz')
- self.assertEqual(posixpath.join('/foo', 'bar', 'baz'), '/foo/bar/baz')
- self.assertEqual(posixpath.join('/foo/', 'bar/', 'baz/'), '/foo/bar/baz/')
- self.assertRaises(TypeError, posixpath.join)
-
-
- def test_splitdrive(self):
- self.assertEqual(posixpath.splitdrive('/foo/bar'), ('', '/foo/bar'))
- self.assertRaises(TypeError, posixpath.splitdrive)
-
-
- def test_split(self):
- self.assertEqual(posixpath.split('/foo/bar'), ('/foo', 'bar'))
- self.assertEqual(posixpath.split('/'), ('/', ''))
- self.assertEqual(posixpath.split('foo'), ('', 'foo'))
- self.assertEqual(posixpath.split('////foo'), ('////', 'foo'))
- self.assertEqual(posixpath.split('//foo//bar'), ('//foo', 'bar'))
- self.assertRaises(TypeError, posixpath.split)
-
-
- def test_splitext(self):
- self.assertEqual(posixpath.splitext('foo.ext'), ('foo', '.ext'))
- self.assertEqual(posixpath.splitext('/foo/foo.ext'), ('/foo/foo', '.ext'))
- self.assertEqual(posixpath.splitext('.ext'), ('', '.ext'))
- self.assertEqual(posixpath.splitext('/foo.ext/foo'), ('/foo.ext/foo', ''))
- self.assertEqual(posixpath.splitext('foo.ext/'), ('foo.ext/', ''))
- self.assertEqual(posixpath.splitext(''), ('', ''))
- self.assertEqual(posixpath.splitext('foo.bar.ext'), ('foo.bar', '.ext'))
- self.assertRaises(TypeError, posixpath.splitext)
-
-
- def test_isabs(self):
- self.assertIs(posixpath.isabs(''), False)
- self.assertIs(posixpath.isabs('/'), True)
- self.assertIs(posixpath.isabs('/foo'), True)
- self.assertIs(posixpath.isabs('/foo/bar'), True)
- self.assertIs(posixpath.isabs('foo/bar'), False)
- self.assertRaises(TypeError, posixpath.isabs)
-
-
- def test_splitdrive(self):
- self.assertEqual(posixpath.splitdrive('/foo/bar'), ('', '/foo/bar'))
- self.assertRaises(TypeError, posixpath.splitdrive)
-
-
- def test_basename(self):
- self.assertEqual(posixpath.basename('/foo/bar'), 'bar')
- self.assertEqual(posixpath.basename('/'), '')
- self.assertEqual(posixpath.basename('foo'), 'foo')
- self.assertEqual(posixpath.basename('////foo'), 'foo')
- self.assertEqual(posixpath.basename('//foo//bar'), 'bar')
- self.assertRaises(TypeError, posixpath.basename)
-
-
- def test_dirname(self):
- self.assertEqual(posixpath.dirname('/foo/bar'), '/foo')
- self.assertEqual(posixpath.dirname('/'), '/')
- self.assertEqual(posixpath.dirname('foo'), '')
- self.assertEqual(posixpath.dirname('////foo'), '////')
- self.assertEqual(posixpath.dirname('//foo//bar'), '//foo')
- self.assertRaises(TypeError, posixpath.dirname)
-
-
- def test_commonprefix(self):
- self.assertEqual(posixpath.commonprefix([]), '')
- self.assertEqual(posixpath.commonprefix([
- '/home/swenson/spam',
- '/home/swen/spam']), '/home/swen')
- self.assertEqual(posixpath.commonprefix([
- '/home/swen/spam',
- '/home/swen/eggs']), '/home/swen/')
- self.assertEqual(posixpath.commonprefix([
- '/home/swen/spam',
- '/home/swen/spam']), '/home/swen/spam')
-
-
- def test_getsize(self):
- f = open(test_support.TESTFN, 'wb')
-
- try:
- f.write('foo')
- f.close()
- self.assertEqual(posixpath.getsize(test_support.TESTFN), 3)
- finally:
- if not f.closed:
- f.close()
-
- os.remove(test_support.TESTFN)
-
-
-
- def test_time(self):
- f = open(test_support.TESTFN, 'wb')
-
- try:
- f.write('foo')
- f.close()
- f = open(test_support.TESTFN, 'ab')
- f.write('bar')
- f.close()
- f = open(test_support.TESTFN, 'rb')
- d = f.read()
- f.close()
- self.assertEqual(d, 'foobar')
- self.assert_(posixpath.getctime(test_support.TESTFN) <= posixpath.getmtime(test_support.TESTFN))
- finally:
- if not f.closed:
- f.close()
-
- os.remove(test_support.TESTFN)
-
-
-
- def test_islink(self):
- self.assertIs(posixpath.islink(test_support.TESTFN + '1'), False)
- f = open(test_support.TESTFN + '1', 'wb')
-
- try:
- f.write('foo')
- f.close()
- self.assertIs(posixpath.islink(test_support.TESTFN + '1'), False)
- if hasattr(os, 'symlink'):
- os.symlink(test_support.TESTFN + '1', test_support.TESTFN + '2')
- self.assertIs(posixpath.islink(test_support.TESTFN + '2'), True)
- os.remove(test_support.TESTFN + '1')
- self.assertIs(posixpath.islink(test_support.TESTFN + '2'), True)
- self.assertIs(posixpath.exists(test_support.TESTFN + '2'), False)
- self.assertIs(posixpath.lexists(test_support.TESTFN + '2'), True)
- finally:
- if not f.close():
- f.close()
-
-
- try:
- os.remove(test_support.TESTFN + '1')
- except os.error:
- pass
-
-
- try:
- os.remove(test_support.TESTFN + '2')
- except os.error:
- pass
-
-
- self.assertRaises(TypeError, posixpath.islink)
-
-
- def test_exists(self):
- self.assertIs(posixpath.exists(test_support.TESTFN), False)
- f = open(test_support.TESTFN, 'wb')
-
- try:
- f.write('foo')
- f.close()
- self.assertIs(posixpath.exists(test_support.TESTFN), True)
- self.assertIs(posixpath.lexists(test_support.TESTFN), True)
- finally:
- if not f.close():
- f.close()
-
-
- try:
- os.remove(test_support.TESTFN)
- except os.error:
- pass
-
-
- self.assertRaises(TypeError, posixpath.exists)
-
-
- def test_isdir(self):
- self.assertIs(posixpath.isdir(test_support.TESTFN), False)
- f = open(test_support.TESTFN, 'wb')
-
- try:
- f.write('foo')
- f.close()
- self.assertIs(posixpath.isdir(test_support.TESTFN), False)
- os.remove(test_support.TESTFN)
- os.mkdir(test_support.TESTFN)
- self.assertIs(posixpath.isdir(test_support.TESTFN), True)
- os.rmdir(test_support.TESTFN)
- finally:
- if not f.close():
- f.close()
-
-
- try:
- os.remove(test_support.TESTFN)
- except os.error:
- pass
-
-
- try:
- os.rmdir(test_support.TESTFN)
- except os.error:
- pass
-
-
- self.assertRaises(TypeError, posixpath.isdir)
-
-
- def test_isfile(self):
- self.assertIs(posixpath.isfile(test_support.TESTFN), False)
- f = open(test_support.TESTFN, 'wb')
-
- try:
- f.write('foo')
- f.close()
- self.assertIs(posixpath.isfile(test_support.TESTFN), True)
- os.remove(test_support.TESTFN)
- os.mkdir(test_support.TESTFN)
- self.assertIs(posixpath.isfile(test_support.TESTFN), False)
- os.rmdir(test_support.TESTFN)
- finally:
- if not f.close():
- f.close()
-
-
- try:
- os.remove(test_support.TESTFN)
- except os.error:
- pass
-
-
- try:
- os.rmdir(test_support.TESTFN)
- except os.error:
- pass
-
-
- self.assertRaises(TypeError, posixpath.isdir)
-
- def test_samefile(self):
- f = open(test_support.TESTFN + '1', 'wb')
-
- try:
- f.write('foo')
- f.close()
- self.assertIs(posixpath.samefile(test_support.TESTFN + '1', test_support.TESTFN + '1'), True)
- if hasattr(os, 'symlink'):
- os.symlink(test_support.TESTFN + '1', test_support.TESTFN + '2')
- self.assertIs(posixpath.samefile(test_support.TESTFN + '1', test_support.TESTFN + '2'), True)
- os.remove(test_support.TESTFN + '2')
- f = open(test_support.TESTFN + '2', 'wb')
- f.write('bar')
- f.close()
- self.assertIs(posixpath.samefile(test_support.TESTFN + '1', test_support.TESTFN + '2'), False)
- finally:
- if not f.close():
- f.close()
-
-
- try:
- os.remove(test_support.TESTFN + '1')
- except os.error:
- pass
-
-
- try:
- os.remove(test_support.TESTFN + '2')
- except os.error:
- pass
-
-
- self.assertRaises(TypeError, posixpath.samefile)
-
-
-
- def test_samestat(self):
- f = open(test_support.TESTFN + '1', 'wb')
-
- try:
- f.write('foo')
- f.close()
- self.assertIs(posixpath.samestat(os.stat(test_support.TESTFN + '1'), os.stat(test_support.TESTFN + '1')), True)
- if hasattr(os, 'symlink'):
- if hasattr(os, 'symlink'):
- os.symlink(test_support.TESTFN + '1', test_support.TESTFN + '2')
- self.assertIs(posixpath.samestat(os.stat(test_support.TESTFN + '1'), os.stat(test_support.TESTFN + '2')), True)
- os.remove(test_support.TESTFN + '2')
-
- f = open(test_support.TESTFN + '2', 'wb')
- f.write('bar')
- f.close()
- self.assertIs(posixpath.samestat(os.stat(test_support.TESTFN + '1'), os.stat(test_support.TESTFN + '2')), False)
- finally:
- if not f.close():
- f.close()
-
-
- try:
- os.remove(test_support.TESTFN + '1')
- except os.error:
- pass
-
-
- try:
- os.remove(test_support.TESTFN + '2')
- except os.error:
- pass
-
-
- self.assertRaises(TypeError, posixpath.samestat)
-
-
- def test_ismount(self):
- self.assertIs(posixpath.ismount('/'), True)
- self.assertRaises(TypeError, posixpath.ismount)
-
-
- def test_expanduser(self):
- self.assertEqual(posixpath.expanduser('foo'), 'foo')
-
- try:
- import pwd
- except ImportError:
- pass
-
- self.assert_(isinstance(posixpath.expanduser('~/'), basestring))
- if posixpath.expanduser('~') != '/':
- self.assertEqual(posixpath.expanduser('~') + '/', posixpath.expanduser('~/'))
-
- self.assert_(isinstance(posixpath.expanduser('~root/'), basestring))
- self.assert_(isinstance(posixpath.expanduser('~foo/'), basestring))
- self.assertRaises(TypeError, posixpath.expanduser)
-
-
- def test_expandvars(self):
- oldenv = os.environ.copy()
-
- try:
- os.environ.clear()
- os.environ['foo'] = 'bar'
- os.environ['{foo'] = 'baz1'
- os.environ['{foo}'] = 'baz2'
- self.assertEqual(posixpath.expandvars('foo'), 'foo')
- self.assertEqual(posixpath.expandvars('$foo bar'), 'bar bar')
- self.assertEqual(posixpath.expandvars('${foo}bar'), 'barbar')
- self.assertEqual(posixpath.expandvars('$[foo]bar'), '$[foo]bar')
- self.assertEqual(posixpath.expandvars('$bar bar'), '$bar bar')
- self.assertEqual(posixpath.expandvars('$?bar'), '$?bar')
- self.assertEqual(posixpath.expandvars('${foo}bar'), 'barbar')
- self.assertEqual(posixpath.expandvars('$foo}bar'), 'bar}bar')
- self.assertEqual(posixpath.expandvars('${foo'), '${foo')
- self.assertEqual(posixpath.expandvars('${{foo}}'), 'baz1}')
- finally:
- os.environ.clear()
- os.environ.update(oldenv)
-
- self.assertRaises(TypeError, posixpath.expandvars)
-
-
- def test_normpath(self):
- self.assertEqual(posixpath.normpath(''), '.')
- self.assertEqual(posixpath.normpath('/'), '/')
- self.assertEqual(posixpath.normpath('//'), '//')
- self.assertEqual(posixpath.normpath('///'), '/')
- self.assertEqual(posixpath.normpath('///foo/.//bar//'), '/foo/bar')
- self.assertEqual(posixpath.normpath('///foo/.//bar//.//..//.//baz'), '/foo/baz')
- self.assertEqual(posixpath.normpath('///..//./foo/.//bar'), '/foo/bar')
- self.assertRaises(TypeError, posixpath.normpath)
-
-
- def test_abspath(self):
- self.assert_('foo' in posixpath.abspath('foo'))
- self.assertRaises(TypeError, posixpath.abspath)
-
-
- def test_realpath(self):
- self.assert_('foo' in realpath('foo'))
- self.assertRaises(TypeError, posixpath.realpath)
-
- if hasattr(os, 'symlink'):
-
- def test_realpath_basic(self):
-
- try:
- os.symlink(ABSTFN + '1', ABSTFN)
- self.assertEqual(realpath(ABSTFN), ABSTFN + '1')
- finally:
- self.safe_remove(ABSTFN)
-
-
-
- def test_realpath_symlink_loops(self):
-
- try:
- old_path = abspath('.')
- os.symlink(ABSTFN, ABSTFN)
- self.assertEqual(realpath(ABSTFN), ABSTFN)
- os.symlink(ABSTFN + '1', ABSTFN + '2')
- os.symlink(ABSTFN + '2', ABSTFN + '1')
- self.assertEqual(realpath(ABSTFN + '1'), ABSTFN + '1')
- self.assertEqual(realpath(ABSTFN + '2'), ABSTFN + '2')
- os.chdir(dirname(ABSTFN))
- self.assertEqual(realpath(basename(ABSTFN)), ABSTFN)
- finally:
- os.chdir(old_path)
- self.safe_remove(ABSTFN)
- self.safe_remove(ABSTFN + '1')
- self.safe_remove(ABSTFN + '2')
-
-
-
- def test_realpath_resolve_parents(self):
-
- try:
- old_path = abspath('.')
- os.mkdir(ABSTFN)
- os.mkdir(ABSTFN + '/y')
- os.symlink(ABSTFN + '/y', ABSTFN + '/k')
- os.chdir(ABSTFN + '/k')
- self.assertEqual(realpath('a'), ABSTFN + '/y/a')
- finally:
- os.chdir(old_path)
- self.safe_remove(ABSTFN + '/k')
- self.safe_rmdir(ABSTFN + '/y')
- self.safe_rmdir(ABSTFN)
-
-
-
- def test_realpath_resolve_before_normalizing(self):
-
- try:
- old_path = abspath('.')
- os.mkdir(ABSTFN)
- os.mkdir(ABSTFN + '/k')
- os.mkdir(ABSTFN + '/k/y')
- os.symlink(ABSTFN + '/k/y', ABSTFN + '/link-y')
- self.assertEqual(realpath(ABSTFN + '/link-y/..'), ABSTFN + '/k')
- os.chdir(dirname(ABSTFN))
- self.assertEqual(realpath(basename(ABSTFN) + '/link-y/..'), ABSTFN + '/k')
- finally:
- os.chdir(old_path)
- self.safe_remove(ABSTFN + '/link-y')
- self.safe_rmdir(ABSTFN + '/k/y')
- self.safe_rmdir(ABSTFN + '/k')
- self.safe_rmdir(ABSTFN)
-
-
-
- def test_realpath_resolve_first(self):
-
- try:
- old_path = abspath('.')
- os.mkdir(ABSTFN)
- os.mkdir(ABSTFN + '/k')
- os.symlink(ABSTFN, ABSTFN + 'link')
- os.chdir(dirname(ABSTFN))
- base = basename(ABSTFN)
- self.assertEqual(realpath(base + 'link'), ABSTFN)
- self.assertEqual(realpath(base + 'link/k'), ABSTFN + '/k')
- finally:
- os.chdir(old_path)
- self.safe_remove(ABSTFN + 'link')
- self.safe_rmdir(ABSTFN + '/k')
- self.safe_rmdir(ABSTFN)
-
-
-
- def pass_os_error(self, func, filename):
-
- try:
- func(filename)
- except OSError:
- pass
-
-
-
- def safe_remove(self, filename):
- self.pass_os_error(os.remove, filename)
-
-
- def safe_rmdir(self, dirname):
- self.pass_os_error(os.rmdir, dirname)
-
-
-
-
- def test_main():
- test_support.run_unittest(PosixPathTest)
-
- if __name__ == '__main__':
- test_main()
-
-